/**
 * Ajax库
 * @author Jianbo
 * @deprecated [由require.js 和 $.get() $.getJSON() 替代]
 * import Jquery
 * */
(function($) {
	"use strict";

	var ajaxTool = {};

	// 获取get请求信息
	ajaxTool.GetRequest = function() {
		var search = location.search; //获取url中"?"符后的字串 
		var theRequest = new Object();
		if (search.indexOf("?") != -1) {
			var str = search.substr(1);
			var strs = str.split("&");
			for (var i = 0; i < strs.length; i++) {
				theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
			}
		}
		return theRequest;
	};

	// 注意：该方法是同步的 method = GET
	ajaxTool.getDataBySynchro = function(url) {
		var xmlhttp;
		if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp = new XMLHttpRequest();
		} else { // code for IE6, IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.open("GET", url, false);
		xmlhttp.send();
		return xmlhttp.responseText;
	};

	// 异步获取数据 method = GET
	ajaxTool.getDataByAsync = function(url, callback) {
		var xmlhttp;
		if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp = new XMLHttpRequest();
		} else { // code for IE6, IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4) {
				callback(xmlhttp.responseText, "success");
			} else {
				// callback(null, readyStateText[xmlhttp.readyState]);
			}
		}
		xmlhttp.open("GET", url, true);
		xmlhttp.send();
	};

	// 动态加载js 这是异步加载，会导致不可解决的错误
	ajaxTool.LoadJsByAsync = function(src) {
		var headObj = document.getElementsByTagName("head")[0];
		var srciptObj = document.createElement("script");
		srciptObj.language = "javaScript";
		srciptObj.type = "text/JavaScript";
		srciptObj.src = src;
		headObj.appendChild(srciptObj);
	};
	
	/** 
	 * 同步加载js脚本 
	 * @param id   需要设置的<script>标签的id 
	 * @param url   js文件的相对路径或绝对路径 
	 * @return {Boolean}   返回是否加载成功，true代表成功，false代表失败 
	 */
	ajaxTool.LoadJs = function(url, id) {

		var xmlHttp = null;
		if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
			xmlHttp = new XMLHttpRequest();
		} else { // code for IE6, IE5
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//采用同步加载  
		xmlHttp.open("GET", url, false);
		//发送同步请求，如果浏览器为Chrome或Opera，必须发布后才能运行，不然会报错  
		xmlHttp.send(null);
		//4代表数据发送完毕  
		if (xmlHttp.readyState == 4) {
			//0为访问的本地，200到300代表访问服务器成功，304代表没做修改访问的是缓存  
			if ((xmlHttp.status >= 200 && xmlHttp.status < 300) || xmlHttp.status == 0 || xmlHttp.status == 304) {
				var myBody = document.getElementsByTagName("BODY")[0];
				var myScript = document.createElement("script");
				myScript.language = "javascript";
				myScript.type = "text/javascript";
				myScript.id = id;
				try {
					//IE8以及以下不支持这种方式，需要通过text属性来设置  
					myScript.appendChild(document.createTextNode(xmlHttp.responseText));
				} catch (ex) {
					myScript.text = xmlHttp.responseText;
				}
				myBody.appendChild(myScript);
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	};

	// 加载文件内容
	ajaxTool.loadFile = function(src, callback) { 
		var xmlhttp; 
		if(window.XMLHttpRequest) { 
			// code for IE7+, Firefox, Chrome, Opera, Safari 
			xmlhttp = new XMLHttpRequest(); 
		} else { 
			// code for IE6, IE5 
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		//onreadystatechange 存储函数（或函数名），每当 readyState 属性改变时，就会调用该函数。 
		xmlhttp.onreadystatechange=function() { 
			//readyState 
			//存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。 
			//0: 请求未初始化 
			//1: 服务器连接已建立 
			//2: 请求已接收 
			//3: 请求处理中 
			//4: 请求已完成，且响应已就绪 
			//status 
			//200: "OK" 
			//404: 未找到页面 
			if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
				// console.log(xmlhttp.responseText);
				callback(xmlhttp.responseText);
			} 
		} 
		xmlhttp.open("GET",src,true); 
		xmlhttp.send(); 
	}

	window.AjaxTool = ajaxTool;

})(jQuery);